package com.WGrape.OJ.service;

import com.WGrape.OJ.model.dto.questionsubmit.QuestionSubmitAddRequest;
import com.WGrape.OJ.model.dto.questionsubmit.QuestionSubmitQueryRequest;
import com.WGrape.OJ.model.entity.QuestionSubmit;
import com.WGrape.OJ.model.entity.User;
import com.WGrape.OJ.model.vo.QuestionSubmitVO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
* @author Wait葡萄成熟时
* @description 针对表【question_submit(题目提交)】的数据库操作Service
* @createDate 2025-05-14 15:08:44
*/
public interface QuestionSubmitService extends IService<QuestionSubmit> {
/** 
 * description 递交题目
 * author Wait葡萄成熟时
 */
    long doQuestionSubmit(QuestionSubmitAddRequest questionSubmitAddRequest, User loginUser);
    /**
     * description 构建QueryWrapper查询
     * author Wait葡萄成熟时
     */
    QueryWrapper<QuestionSubmit> getQueryWrapper(QuestionSubmitQueryRequest questionSubmitQueryRequest);
    /**
     * description 获取单个封装
     * author Wait葡萄成熟时
     */
    QuestionSubmitVO getQuestionSubmitVO(QuestionSubmit questionSubmit, User loginUser);
    /**
     * description 获取分页封装
     * author Wait葡萄成熟时
     */
    Page<QuestionSubmitVO> getQuestionSubmitVOPage(Page<QuestionSubmit> questionSubmitPage, User loginUser);


    void setAcceptedNum();
}
